M98 P"0:/sys/user/variables/XySquareManual.g"
M98 P"0:/sys/user/variables/XySquareMode.g"

set global.xySquareMode = "manual"

var step = 0.1
var limit = 2.0
var epsilon = 0.0001

var current = global.xySquareManual
if var.current >= (var.limit - var.epsilon)
  echo "Manual XY squaring offset already at +"^{var.limit}^"mm (clockwise limit)."
  M99

var newValue = var.current + var.step
if var.newValue > var.limit
  set var.newValue = var.limit

var scaled = (var.newValue * 10) + 0.5
set var.newValue = floor(var.scaled) / 10

set global.xySquareManual = var.newValue

echo >"0:/sys/user/variables/XySquareManual.g" "set global.xySquareManual = " ^ var.newValue

echo >"0:/sys/user/variables/XySquareMode.g" "set global.xySquareMode = ""manual"""

echo "Mode changed to manual. XY squaring offset adjusted clockwise to "^{var.newValue}^"mm and saved."